A computer network is a geographically distributed collection of interconnected communication links for transporting data between nodes, such as computers. Many types of computer networks are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). A LAN provides relatively short distance communication among the interconnected nodes, whereas a WAN enables long distance communication over links provided by public or private telecommunications facilities. The nodes typically communicate by exchanging discrete frames or packets of data according to predefined protocols. In this context, a protocol consists of a set of rules defining how the nodes interact with each other.
Computer networks may be further interconnected by an intermediate node, such as a router, to extend the effective “size” of each network. Since management of interconnect computer networks can prove burdensome, smaller groups of computer networks may be maintained as routing domains. In this context, a routing domain is broadly construed as a collection of interconnected nodes within a common address space (e.g., a level, area or autonomous system). The networks within a routing domain are typically coupled together by intradomain routers. These routers manage communication among networks within their domains and communicate with each other using an intradomain routing protocol (or interior gateway protocol, IGP). An IGP protocol, such as a conventional link-state protocol, defines the manner with which routing information and network-topology information are exchanged and processed in a routing domain.
An example of a conventional link-state protocol is the Intermediate-System-to-Intermediate-System (ISIS) protocol. The ISIS routing protocol is one of many routing protocols developed by the International Organization for Standardization (ISO) for use in the Open System Interconnection (OSI) protocol suite, as described in Draft of ISO/IEC 10589: Second Edition, November 2002, which is incorporated herein by reference in its entirety. The ISIS protocol was originally developed to route in ISO Connectionless Network Protocol (CLNP) networks. A version, typically referred to as Integrated ISIS, has since been created that supports both CLNP and Internet Protocol (IP) networks. The ISIS routing protocol is described in detail in Request for Comments (RFC) 1195, entitled Use of OSI IS-IS for Routing in TCP/IP and Dual Environments, December 1990, which is incorporated herein by reference in its entirety.
Typically, a routing protocol, such as ISIS, requires that every link over which it operates is bidirectional in order to, e.g., establish adjacencies over the links. As used herein, an adjacency is a relationship formed between selected neighboring routers (or “neighbors”) for the purpose of exchanging routing information and abstracting the network topology. The neighbors are routers that have interfaces to a common communication link of the network, wherein an interface is a connection between a router and the link. Adjacencies are generally established and maintained through the use of a conventional Hello protocol. That is, two routers become neighbors when they see each other's Hello packets over the common link. Moreover, the Hello protocol ensures that communication between neighbors is bidirectional by periodically sending Hello packets over the interfaces. Thus, establishment and maintenance of adjacencies using routing protocols typically require bidirectional communication, i.e., the routers expect to send and receive traffic through the same interface.
Unidirectional links are often deployed in service provider networks that are configured to implement IGP routing protocols, such as ISIS. An example of such a unidirectional link deployment involves satellite broadcast that enables transmission of information to a plurality of “downstream” nodes. In a typical satellite broadcast, a transmitter (e.g., a satellite) is configured to transmit information in one direction to many receivers (e.g., the downstream nodes). Applications of a satellite broadcast include television, such as on-demand video streams, and radio broadcasts. However, unidirectional links allow traffic to be sent in one direction only and therefore there is no way for the routing protocol to establish adjacencies over the links. As a result, solutions are provided to make the unidirectional links “appear” bidirectional.
One solution that takes into account the use of routing protocols over unidirectional links is called Unidirectional Link Routing (UDLR), which consists of creating (for each unidirectional link) a tunnel. Broadly stated, a tunnel is a logical path through which encapsulated packets travel from a source endpoint through a network to a destination endpoint. Encapsulation is typically performed at the source endpoint of the tunnel and de-encapsulation is performed at the destination endpoint. Here, encapsulation may involve enclosing a particular packet (payload) in an additional header to form an encapsulated packet. The additional header provides routing information that enables the encapsulated packet to traverse the network.
A protocol that may be used in a tunneling implementation, such as UDLR, to encapsulate packets is the “Generic Routing Encapsulation” (GRE) protocol defined in RFC 1701, RFC 2784 and RFC 2890, each of which is available from the Internet Engineering Task Force, Network Working Group, http://www.ietf.org. The GRE protocol is typically executed by routers that form the source and destination endpoints of a GRE tunnel. According to the UDLR solution, the GRE tunnel serves as a “back channel” of a unidirectional high-capacity link and transparently emulates a single bidirectional link for unicast transmissions over the unidirectional link. UDLR intercepts packets that need to be sent on receive-only interfaces coupled to the links and sends them on the UDLR back-channel tunnels. When routers receive these packets over UDLR back-channel tunnels, UDLR makes the packets appear as if they were received on send-only interfaces.
However, one problem with the UDLR solution is scalability. Since the UDLR solution employs a unidirectional link to transmit information from a transmitting router to a receiving router in one direction and, in the opposite direction, the two routers use a GRE tunnel, a plurality of GRE tunnel interfaces, one for each unidirectional link, must be configured. That is, for every unidirectional link, a separate GRE tunnel (functioning as a back channel) is needed. This solution is undesirable because it requires associating each interface with an implementation cost that includes one or more data structures and associated processing resources. As such, the solution does not scale properly and the present invention is directed to improving scalability of a network configured to implement an IGP routing protocol over unidirectional links.